Skip to content

feat: planeta migration features#1

Merged
witqq merged 1 commit intomasterfrom
feature/planeta-migration-gaps
Mar 8, 2026
Merged

feat: planeta migration features#1
witqq merged 1 commit intomasterfrom
feature/planeta-migration-gaps

Conversation

@witqq
Copy link
Owner

@witqq witqq commented Mar 7, 2026

Auto row height, column stretch, date picker, context menu submenus, locale, cell editor registry, datetime editor.

Changes

Benchmark suite: BenchmarkRunner, measureMultiRun, computeStats, measureThroughput — 6 metrics across 1K/10K/100K datasets.

Text measurement + word-wrap: TextMeasureCache extended with getWrappedLines (word-boundary + char fallback), measureWrappedHeight. ColumnDef.wrapText option. CellTextLayer renders multi-line wrapped text.

Auto row height: RowStore auto/manual separation (manual wins). LayoutEngine.setRowHeightsBatch() for O(n) batch. AutoRowSizeManager: viewport-first sync + requestIdleCallback async sweep. Dirty tracking, scroll compensation.

Column stretch: ColumnStretchManager with 'all' and 'last' modes. ResizeObserver. Manual resize exclusion, frozen column handling.

Date picker: DatePickerOverlay — pure-DOM calendar, keyboard nav, ARIA role=dialog.

Context menu submenus: ContextMenuItem.submenu for recursive nesting. Chevron, hover delay, keyboard nav. Empty menu prevention.

Locale system: EN/RU packs, resolveLocale(), runtime switching.

Cell editor registry: CellEditor interface, CellEditorRegistry with priority resolution. DatePickerEditor adapter. InlineEditor fallback.

DateTimeEditor: Calendar + hour/minute spin controls for 'datetime' columns. ISO YYYY-MM-DDTHH:mm commit. Tab cycling, Now button.

Demo overhaul: Sidebar layout, all features demonstrated, 1K default / 1M toggle.

Tests

  • 1708 unit tests (77 files)
  • 13 E2E Playwright tests
  • 140 files changed, +10746 -864

…verhaul

New engine features:
- Auto row height: viewport-first sync measurement, idle async sweep,
  manual-always-wins priority, scroll compensation
- Column stretch: 'all'/'last' modes, ResizeObserver, frozen column handling
- Text wrapping: word-boundary + char fallback, multi-line canvas rendering
- Date picker: calendar overlay, keyboard nav, ARIA dialog, scroll-aware
- DateTime editor: calendar + hour/minute spinners, ISO commit format
- Context menu submenus: recursive nesting, hover delays, keyboard nav
- Locale system: EN/RU packs, runtime switching, resolveLocale() merge
- Cell editor registry: priority-sorted resolution, CellEditor lifecycle
- Benchmark suite: BenchmarkRunner with 6 metrics across 1K/10K/100K rows

Documentation overhaul:
- Internal: ARCHITECTURE.md (all engine subsystems), TESTING-GUIDE.md,
  DOCUMENTATION-STYLE-GUIDE.md, CHECKLIST.md, CLAUDE.md
- Site audit: 47 existing pages verified against source code,
  80+ factual errors fixed (wrong signatures, fabricated payloads,
  incorrect types, outdated class names)
- 6 new guide pages: auto-row-height, text-wrapping, column-stretch,
  date-editors, cell-editor-registry, locale
- Cross-references: features index, editing, configuration, cell-types
- Context menu submenus section with positioning, timing, keyboard nav
- Site: 48 → 54 pages, 0 build errors

Demo: sidebar layout, feature toggles, badges, 1K/1M row toggle
Tests: 1708 unit tests, 13 E2E Playwright tests
@witqq witqq force-pushed the feature/planeta-migration-gaps branch from 5894868 to 00d5590 Compare March 8, 2026 14:18
@witqq witqq merged commit db620fe into master Mar 8, 2026
@witqq witqq deleted the feature/planeta-migration-gaps branch March 8, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant